#include <signal.h>
#include <iostream>
#include <cstring>
#include <sys/wait.h>
#include "log.hpp"

using namespace std;

Log log;

// void signal_handler(int signum)
// {
// 	log(Info,"catch signal:%d",signum);
// 	int n = alarm(6);
// 	cout << "剩余时间:" << n << " pid: " << getpid() << endl;
// }

// int main()
// {
// 	signal(SIGALRM,signal_handler);
// 	alarm(5);
// 	alarm(9);
// 	alarm(1);
// 	alarm(8);
// 	while(1)
// 	{
// 		cout << "I am a running process" << endl;
// 		sleep(1);
// 	}
// 	//signal(SIGFPE,signal_handler);
// 	//signal(SIGSEGV,signal_handler);

// 	// cout << "div before" << endl;
// 	// sleep(5);
// 	// int a = 1;
// 	// int c = a / 0;

// 	// int* p = nullptr;
// 	// *p = 10;             //野指针

// 	// sleep(1);
// 	// cout << "div after" << endl;
// 	// printf("%d",*((char*)0));      //是只有指向权限，而不能访问或者修改  -> 段错误
// 	//MMU内存管理单元
// 	return 0;
// }

int main()
{
	// int a = 10;
	// int b = a / 0;

	int nums[5]{101,8,9,32,1};
	int sum = 0;
	for(auto& num : nums) sum += num;
	cout << sum << endl;

	// cout << "b = " << b << endl;
	// pid_t id = fork();
	// if (id == 0)
	// {
	// 	int cnt = 500;
	// 	while(cnt--){
	// 		cout << "I am a child process,pid: " << getpid() << " cnt: " << cnt << endl;
	// 		sleep(1);
	// 	}
	// }
	// else
	// {
	// 	int status = 0;
	// 	pid_t rid = waitpid(id, &status, 0);
	// 	if (rid == -1)
	// 	{
	// 		log(Fatal, "waitpid error,error string:%s", strerror(errno));
	// 	}
	// 	else if(rid == id){
	// 		cout << "exit code : " << ((status >> 8) & 0xff) << " exit sight: " << (status & 0x7f) << " core dump: " << ((status >> 7) & 1) << endl;
	// 	}
	// }
}